package scheduler;

import java.util.List;

//wątek do zapisywania
class SaverThread implements Runnable
{
	ILinkRepository rep;
	List<String> l;
	SaverThread(ILinkRepository rep, List<String> l)
	{
		this.l = l;
		this.rep = rep;
	}
	@Override
	public void run()
	{
		rep.saveLinks(l);
	}
	
	public void reset(){
		rep.resetRegistry();
	}
}


public class CrawlerScheduler implements IScheduler
{
	//repozytorium używane do zapisywania plików
	private ILinkRepository rep;
	
	//konstruktor
	public CrawlerScheduler(ILinkRepository rep)
	{
		this.rep = rep;
	}
	
	//pobieranie linków
	@Override
	public String getTask()		
	{
		return rep.getLink();
	}

	//zapisywanie linków
	@Override
	public void saveLinks(List<String> l)
	{
		new Thread(new SaverThread(rep, l)).start();
	}

	//resetowanie schedulera czyli przerzucenie wszystkich sprawdzony linków z powrotem
	@Override
	public void reset() {
		this.rep.resetRegistry();
		
	}
	
	//zatrzymywanie działania schedulera - NIEZAIMPLEMENTOWANE!!!!!
	@Override
	public void stop(){}
}
